#pragma once

#include "admin/client/RouteInfoDownloader.h"
#include "admin/client/TopicManager.h"
#include <memory>

namespace zeroplus::mq
{
    using namespace admin;
    class TopicController
    {
    private:
        std::shared_ptr<admin::RouteInfoDownloader> routeInfoDownloader_;
        std::shared_ptr<admin::TopicManager> topicManager_;

    public:
        TopicController(const std::string &uri);
        ~TopicController();
        void Start();
        bool AddTopic(const std::vector<std::vector<std::string>> &topic2D);
        bool DelTopic(const std::string &topic);
    };
}